
public class InsertionSort extends Sort{	
	
	public InsertionSort(){
		super();
	}

	
	// insertion sort pseudocode
	//	voor alle elementen in de lijst
		// pak huidige element
		// pak huidige index
			// while (huidige Index > 0 en het vorige element > dan huidig element)
				// beweeg het vorige element naar rechts
				// zet huidige index naar 1tje terug
			// zet het element op plek met de huidige index naar het huidige element
	public <T extends Comparable<? super T >> T[] sort(T[] list){
		for (int i = 1; i < list.length; i++){
			T currentElement = list[i];
			int currentIndex = i;
			steps++;			
			while ( currentIndex > 0 && currentElement.compareTo(list[currentIndex-1]) < 0 ){
				list[currentIndex] = list[currentIndex-1];
				currentIndex --;
				steps++;
			}
			list[currentIndex] = currentElement;
		}
		return list;
	}

}
